The present invention relates to the field of portable wireless communications devices, and more particularly to the control of such devices through the use of control programs written in an interpretive language, such as the JAVA language.
A portable wireless communications device, such as a cellular mobile phone, of the prior art typically includes a transmitter, a receiver, a man-machine interface, and a software control program. The transmitter and receiver exchange coded voice or data with a wireless network station, such as a common cellular base station. The man-machine interface (MMI) interacts with the human user and typically includes a keyboard and display. The software control program runs on an embedded control processor and controls the interactions between the human user, the MMI, the transmitter, the receiver and the wireless network. In the prior art, this software control program is written in a language such as xe2x80x9cCxe2x80x9d mixed with native Assembly Code which is compiled and linked to produce native machine code instructions for the device""s processor to execute directly. The use of the mixture of compiled C and native assembler for mobile phone control programs is due to the fact that code efficiency in terms of memory occupancy, speed, and power consumption of the processor is critical in low-cost, battery-operated equipment.
The JAVA language has been promoted by SUN Microsystems as a platform-independent language. The platform-independence of the JAVA language is provided by it being an interpreted language, that is, JAVA does not compile to produce native machine code for any particular processor, but to produce JAVA bytecodes. JAVA bytecodes are a compressed representation of the original, human-readable source code. The JAVA bytecodes are standardized according to a public specification such as that given in Chapter 6 of xe2x80x9cThe JAVA Virtual Machine Specificationxe2x80x94Second Editionxe2x80x9d by Tim Lindholm and Frank Yeddin and can be interpreted by any processor that is equipped with a JAVA interpreter. The combination of the JAVA interpreter and the processor is known as a JAVA Virtual Machine (JVM). The advantage of an interpreted language such as JAVA is that the compiled program consisting of JAVA bytecodes theoretically does not need to be recompiled to run on a different processor, as all JVMs theoretically behave equivalently if they correctly implement the JAVA standard.
JAVA language has not been used for mobile phone control programs due to the need for efficiency in terms of memory occupancy, speed, and power consumption of the processor that are critical in low-cost, battery-operated equipment. These goals are not met by writing control software in JAVA due to the significant size of the JVM interpreter for executing JAVA bytecodes. Further, it is well known that interpretive languages generally execute less efficiently than native machine code programs. Thus, several considerations present in the prior art counsel against the use of JAVA for the intimate control software of a mobile phone and rather suggest that the present approach using a mixture of compiled C and native Assembler is best suited to the task.
In contrast to mobile phones, it was known in the prior art that portable computers products, such as laptop computers, notebook computers, and Personal Digital Assistants (PDAs), may contain a JAVA Virtual Machine for executing software available from third parties, or programs embedded within hypertext documents that are dynamically downloaded from the Internet. Software that is dynamically downloaded must of course be stored during execution in Random Access Memory (RAM) as opposed to the Read-Only Memory (ROM). Thus, in the prior art usage of JAVA for downloaded programs from third parties, the JAVA program had to be downloaded into RAM. However, at the present state of the art, ROM occupies {fraction (1/10)}th of the chip area needed for RAM and is therefore much more cost effective for storing fixed control programs, such as the control programs for a mobile phone. Therefore, the control programs of prior art mobile phones are typically stored in ROM.
Some portable computers may be equipped with wireless communications devices, such as mobile phones constructed in PCMCIA plug-in card format, to allow communications between the portable computer and the Internet while on the move. Other computers may be connected by cable or short-range wireless link, such as an infrared link, to a conventional handheld mobile phone for a similar purpose. For the reasons listed above however, such wireless communications devices in the prior art include their own, ROM-stored control programs written in traditional languages and not JAVA.
Thus, none of the prior art discloses or suggests the use of an interpretive language such as JAVA as the language for wireless communications device control programs.
The present invention provides a portable wireless communications device that is largely controlled in its internal operation and in its interaction with the mobile phone network by a ROM-stored control program written in an interpreted language, such as the JAVA language.
In a preferred embodiment, the wireless communications device includes a transmitter and a receiver for communicating data via a wireless network control station via radiowaves, a man-machine interface (MMI) for displaying information to the human user and providing interaction with the human user, and a control processor for controlling interaction between the MMI, the operation of the transmitter, the operation of the receiver, and the wireless network station. The control processor is controlled by a stored control program comprising ROM-stored JAVA bytecodes that are interpretively executed by a ROM-stored JAVA interpreter. The JAVA interpreter may optionally be used when required to interpret RAM-stored JAVA bytecodes that are received from the network station, for example embedded within a hypertext document conveyed over the Internet.
Using a mobile phone as an example of a portable wireless communications device, a typical control function provided by the JAVA control program is to process a channel allocation message received from the wireless control station as a response to a mobile- or network-initiated call. A channel-allocation message may for example include information about the radio frequency channel on which further communications are to continue, a timeslot within a repetitive Time-Division Multiple Access frame period on which communications are to continue, a Code-Division Multiple Access spreading code to be used, and/or an indication whether or not communications over the wireless link should use wireless link encryption. Other examples of control messages passed between the network station and the mobile phone over the wireless link include a handoff message which informs the mobile phone to transfer from communicating with the network station currently used to communicating with a different network station which the mobile phone is approaching; an authentication request in which either the mobile phone or the network can send a message containing an authentication challenge to the other party and the other party must reply with an authentication response based on secret information that only genuine parties would have in common; and the Mobile Assisted Handover (MAHO) message in which the network informs the mobile phone of the frequencies of surrounding networks stations that shall be scanned for the purposed of making signal strength measurements, and which the mobile sends to the network to report such measurements. The collection of all such control messages that may be exchanged between the mobile phone and the network, largely in a fashion unknown to the human operator, is known as Layer-3 Signaling. The invention thus utilizes a control program for handling layer-3 signaling exchanged between the network and the mobile phone and for controlling the behavior of the mobile phone in response to such messages.
Beneficially, the control program of JAVA bytecodes is interpreted by a JAVA interpreter that is already present in the mobile phone for reasons not associated with communications network control, but instead for providing interaction between the human user and the Internet.